import axios from 'axios';
import router from '../router'
import { Toast } from 'vant'
import store from '../store';
// 请求头拦截器
axios.interceptors.request.use(config => {
    // 前端每次发起接口都要添加一个token
    // vuex 全局的状态管理工具
    const token = store.state.user.token; // 在仓库获取 token
    if (token) {
        config.headers.authorization = "Bearer " + token;
    }
    return {
        ...config
    }
})
// 响应头拦截器
axios.interceptors.response.use(response => {
    if (response.data.success == false) {
        Toast.fail(response.data.message); // 接口失败 抛出错误提示
    }
    return response.data
}, err => {
    switch (err.response.status) {
        case 401:
            // 说明无权限 跳转到登录页 
            // this.$router.push()
            router.push('/login')
            break;
        case 403:
            router.push('/login')
            break;
        case 404:
            Toast.fail('接口不存在');
            break;
        default:
            Toast.fail(err.message);
            break;
    }
    return Promise.reject(err)
})

export default axios;